perm filename QUAD.SAI[1,DEK] blob sn#521352 filedate 1980-07-08 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	begin comment test distribution of partial quotients in quadratics
C00004 ENDMK
C⊗;
begin comment test distribution of partial quotients in quadratics;
integer dd,n,u,v;
define d=3141;
integer array count[0:2*d],hist[0:100];
external procedure bail;
setprint("","b");
arrclr(count); arrclr(hist);
bail;
for u←1 step 1 until d do
	begin dd←d↑2-u↑2;
	for v←d-u+1 step 1 until d+u do
		begin integer k; k←v*(dd div v)-dd;
		while true do
			begin k←k+v;
			if k>2*d then done;
			count[k]←count[k]+1;
			end;
		end;
	end;
for dd←1 step 1 until 2*d do
	begin integer t,rr,u,uu,v,vv,a,m;
	u←uu←rr←2*d; v←dd; vv←1; m←1;
	while v≠1 do
		begin a←u div v; uu←u; u←rr-(u mod v);
		m←m+1;
		t←v; v←a*(uu-u)+vv; vv←t;
		end;
	print('15&'12,"sqrt(3141↑2 +",dd,") cycle length ",m," of ",count[dd]);
	n←100*m/count[dd]+.5;
	hist[n]←hist[n]+1;
	end;
for n←0 step 1 until 100 do print('15&'12,n,"%: ",hist[n]);
end